今天我們要透過試算表來發送團隊開會行事曆
function createTeamMeetings() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Meetings");
if (!sheet) {
Logger.log("找不到 Meetings 工作表!");
return;
}
SpreadsheetApp.getActiveSpreadsheet():取得目前開啟的 Google 試算表。
getSheetByName("Meetings"):取得名稱為 Meetings 的工作表。
如果找不到該工作表,sheet 就是 null,程式會進入 if (!sheet),印出訊息並停止,避免後續操作出錯。
var lastRow = sheet.getLastRow();
var calendar = CalendarApp.getDefaultCalendar(); // 可改成特定日曆 ID
for (var i = 2; i <= lastRow; i++) {
var date = sheet.getRange(i, 1).getValue();
var startTime = sheet.getRange(i, 2).getValue();
var endTime = sheet.getRange(i, 3).getValue();
var title = sheet.getRange(i, 4).getValue();
var guests = sheet.getRange(i, 5).getValue();
var location = sheet.getRange(i, 6).getValue();
// 將日期+時間組成 Date 物件
var startDateTime = new Date(date);
startDateTime.setHours(startTime.getHours());
startDateTime.setMinutes(startTime.getMinutes());
var endDateTime = new Date(date);
endDateTime.setHours(endTime.getHours());
endDateTime.setMinutes(endTime.getMinutes());
// 建立活動
var event = calendar.createEvent(title, startDateTime, endDateTime, {
location: location,
guests: guests,
sendInvites: true
});
Logger.log("已新增會議:" + title + " - " + startDateTime);//每新增一個會議就印出訊息,方便追蹤程式運行結果。
}
}
getRange(i, col).getValue():讀取該列該欄的資料,對應試算表欄位:
1.日期
2.開始時間
3.結束時間
4.主題
5.參與者 Email(多個用逗號分隔)
6.地點或會議連結
Google Calendar 需要 Date 物件作為活動時間。
將試算表中的日期和時間合併成完整的 startDateTime 與 endDateTime。
setHours() 和 setMinutes():把時間資訊加到日期上。
createEvent(title, start, end, options):在日曆新增活動。
location:活動地點或會議連結。
guests:邀請的參與者,支援多個 email,用逗號分隔。
sendInvites: true:自動寄邀請信給所有參與者。